<template>
    <div>
        <router-link 
            tag='div' 
            to='/' 
            class="header-abs"
            v-show="showAbs"
        >
            <div class="iconfont header-abs-back">&#xe624;</div>
        </router-link>
        <!-- 用:style 来绑定样式变化 -->
        <div 
            class="header-fixed"  
            v-show="!showAbs"
            :style="opacityStyle"
        >
            <router-link to="/">
                <div class="iconfont header-fixed-back">&#xe624;</div>
            </router-link>
            景点详情
        </div>
    </div>
    
</template>

<script>
export default {
    name: 'DetailHeader',
    data () {
        return {
            showAbs: true,
            opacityStyle: {
                opacity: 0
            }
        }
    },
    methods: {
        handleSroll () {
            // 不同浏览器的兼容处理
            const top = document.documentElement.scrollTop ||
                document.body.scrollTop || window.pageYOffset;
            if(top > 60){
                let opacity = top / 140
                opacity = opacity > 1 ? 1 :opacity
                this.opacityStyle = { opacity }
                this.showAbs = false
            }else {
               this.showAbs = true 
            }
        }
    },
    // 由于keepalive而带来的生命周期函数，在这个activated里面定义全局方法是风险很大的，会影响其他页面
    // 这里将原本的acitvated改为了mounted，因为keepalive将detail排除了，没有了activated钩子
    mounted () {
        window.addEventListener('scroll', this.handleSroll)
    },
    // （这个夜游keepalive提供 --页面即将被隐藏或者替换成新的页面时触发）
    // 给window进行解绑，从而影响其他页面
    destroyed (){
        window.removeEventListener('scroll', this.handleSroll)
    }
}
</script>

<style lang='stylus' scoped>
    @import '~styles/varibles.styl'
    .header-abs
        position: absolute
        left: .2rem
        top: .2rem
        width: .8rem
        height: .8rem
        line-height: .8rem
        border-radius: .4rem
        text-align: center
        background: rgba(0, 0, 0, 0.8)
        .header-abs-back
            color: #fff
            font-size: .4rem
    .header-fixed
        z-index 2
        position: fixed
        top: 0
        left: 0
        right: 0
        height: $headerHeight
        line-height: $headerHeight
        text-align: center
        color: #fff
        background: $bgColor
        font-size: .32rem
        .header-fixed-back
            position: absolute
            left: 0
            top: 0
            width: .64rem
            text-align: center
            font-size: .4rem
            color: #fff

</style>